In computer graphics, rendering is the process of producing images on a display device from descriptions of graphical objects or models. A graphics processing unit (GPU) renders 3D graphical objects, which is often represented by a combination of primitives such as points, lines, polygons, and higher order surfaces, into picture elements (pixels).
A GPU typically includes a rendering pipeline to perform the rendering operations. A rendering pipeline includes the following main stages: (1) vertex processing, which processes and transforms the vertices (that describe the primitives) into a projection space, (2) rasterization, which converts each primitive into a set of 3D pixels, which is aligned with the pixel grid on the display device with attributes such as 3D position, color, normal and texture, (3) fragment processing, which processes each individual set of 3D pixels, and (4) output processing, which combines the 3D pixels of all primitives into the 2D space for display.
When a graphical object is not completely opaque, some of its background can show through and blends into the object. Blending combines pixel values (e.g., the Red, Green and Blue (RGB) color values) in each pixel location to produce a final pixel value for display. Conventionally, blending is performed by fixed-function hardware after fragment processing in the output processing stage. Fixed-function hardware is typically more costly and less flexible than programmable hardware.